package cn.com.gridinfo.sooc.core.openclass;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

import com.jeremy.arad.utils.Log;

import butterknife.ButterKnife;
import butterknife.InjectView;
import cn.com.gridinfo.sooc.R;
import cn.com.gridinfo.sooc.base.BaseSoocFragment;
import cn.com.gridinfo.sooc.common.UrlConst;
import cn.com.gridinfo.sooc.utils.widget.VideoEnabledWebChromeClient;
import cn.com.gridinfo.sooc.utils.widget.VideoEnabledWebView;

/**
 * 瘦课网
 *
 * @author jieli
 */
public class OpenClassFragment extends BaseSoocFragment {

    @InjectView(R.id.sooc_openclass_webview)
    VideoEnabledWebView sooc_webview;//显示授课网页View控件
    @InjectView(R.id.webview_layout)
    RelativeLayout webviewLayout;//webview layout
    @InjectView(R.id.videoLayout)
    RelativeLayout videoLayout; //视频全屏layout

    int maxLastPositon;//数据最后位置


//    @InjectView(R.id.toolbar_leftbtn)
//    ImageView toolbarLeftbtn;
//    @InjectView(R.id.toolbar_title)
//    TextView toolbarTitle;
//    @InjectView(R.id.toolbar_rightbtn)
//    ImageView toolbarRightbtn;
//    @InjectView(R.id.toolbar_line)
//    View toolbarLine;
//    @InjectView(R.id.toolbar_rightimg)
//    ImageView toolbarRightimg;
//    @InjectView(R.id.toolbar_righttv)
//    TextView toolbarRighttv;

    private VideoEnabledWebChromeClient webChromeClient;//播放网页视频会用到


    public static OpenClassFragment newInstance() {
        OpenClassFragment fragment = new OpenClassFragment();
//        Bundle args = new Bundle();
//        args.putString(ARG_PARAM1, param1);
//        args.putString(ARG_PARAM2, param2);
//        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.oc_sooc_web, null);
        ButterKnife.inject(this, view);

        Log.d("============瘦课网========");
//        initToolBar();
        //初始化 webview 控件
        initWebView();
        return view;
    }

//    /**
//     * 初始化头部控件
//     */
//    private void initToolBar(){
//        toolbarTitle.setText("公开课");
//        toolbarLine.setVisibility(View.GONE);
//        toolbarLeftbtn.setVisibility(View.GONE);
//    }

    //初始化 webView 控件
    private void initWebView() {
        //视频加载初始化界面
        View loadingView = getActivity().getLayoutInflater().inflate(R.layout.view_loading_video, null);

        //设置webview网页显示，加载url
        //webview 内网页跳转
        sooc_webview.setWebViewClient(new WebViewClient() {
            //页面加载前
//            @Override
//            public void onPageStarted(WebView view, String url, Bitmap favicon) {
//                showProgress(true);//加载进度条
//                Log.i("onPageStarted: "+ url);
//                super.onPageStarted(view, url, favicon);
//                //是授课网域名下的地址,并且不是首页时,需要隐藏 title
//                if (url.contains(Const.SOOC_WEBSITE) && !url.endsWith(Const.SOOC_INDEX)) {
////                    title_layout.setVisibility(View.GONE);
//                }
//
//            }

            //页面加载完成
//            @Override
//            public void onPageFinished(WebView view, String url) {
//                Log.i("onPageFinished : "+ url);
//                super.onPageFinished(view, url);
//                //瘦课网首页显示 title 导航,不是站内链接地址,加载完成要显示title 导航
//                if (url.endsWith(Const.SOOC_INDEX) || !url.contains(Const.SOOC_WEBSITE)) {
//                    Log.i("title显示 : "+url);
////                    title_layout.setVisibility(View.VISIBLE);
//
//                }
//                //停止进度条网页加载完成
//                showProgress(false);
//            }


            //当前加载
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                Log.i("sooc网链接接 : "+url);


                //排除一定位数的数字会自动成为电话号码
                if (url.indexOf("tel:") < 0) {
                    view.loadUrl(url);
//                    //TODO 需要判断加载文档时,进行的处理,网页端地址跳出域名
//                    //http://weboffice.gridinfo.com.cn/wv/mWord.aspx
//                    //如果不是网站域名则进入错误页面
//                  //  if (!url.contains(Const.SOOC_WEBSITE))
//                        //view.loadUrl("file:///android_asset/error.html");
//                        //正常加载
//                   // else
//                       view.loadUrl(url);
                }

                return false;
            }

            //服务器断开链接或者未联网时
//            @Override
//            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
//                Log.i("加载瘦课网失败 :"+errorCode + "====" + description);
//                super.onReceivedError(view, errorCode, description, failingUrl);
//                Log.i("加载失败URL地址: "+ failingUrl);
//                // 加载网页失败时处理  如：
//                view.loadUrl("file:///android_asset/error.html");
//
////                title_layout.setVisibility(View.VISIBLE);
//                //停止进度条网页加载完成(原来的限制暂时不能用)
//                showProgress(false);
//            }
        });

//        加载 video 视频 client
        webChromeClient = new VideoEnabledWebChromeClient(getActivity(), webviewLayout, videoLayout, loadingView, sooc_webview) {
            @Override
            public void onProgressChanged(WebView view, int progress) {
            }


        };
        //设置 video 全屏和隐藏
        webChromeClient.onShowCustomView(sooc_webview, new VideoEnabledWebChromeClient.CustomViewCallback() {

            @Override
            public void onCustomViewHidden() {
                webChromeClient.onHideCustomView();
            }
        });

        sooc_webview.setClickable(true);
        sooc_webview.getSettings().setJavaScriptEnabled(true);//允许脚本
//        sooc_webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
//        sooc_webview.getSettings().setLoadWithOverviewMode(true);//加载页面的到屏幕大小模式
//        sooc_webview.getSettings().setSupportZoom(true);//不支持变焦
//        sooc_webview.getSettings().setBuiltInZoomControls(false);//不支持缩放
//        sooc_webview.getSettings().setDisplayZoomControls(false);
//
        sooc_webview.setWebChromeClient(webChromeClient);
        //设置字符编码
//        sooc_webview.getSettings().setDefaultTextEncodingName("UTF-8");


        sooc_webview.loadUrl(UrlConst.SOOC_WEBURL);
    }

    @Override
    public void onPause() {
        super.onPause();
        sooc_webview.onPause();
//        sooc_webview.pauseTimers();
//        sooc_webview.stopLoading();

    }

    @Override
    public void onResume() {
        super.onResume();
        sooc_webview.onResume();
//        sooc_webview.resumeTimers();
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        ButterKnife.reset(this);
    }
}
